看到网上有一个有趣的提问:Android在使用Handler通信的时候,发现例如在runOnUiThread中修改了外部类的控件,而activity被销毁了,那runOnUiThread调用控件时会不会发生空指针异常?
后来进行思考得出如下结论:
匿名内部类持有外部类的对象,在内部类没有被回收之前,外部类不会被回收,因为和内部类关联。
所以就算activity被关闭了,生命周期全部走完,也不会被回收,所以不会出现空指针。
但是,如果内部类一直存活的话,会产生内存泄漏。
看到网上有一个有趣的提问:Android在使用Handler通信的时候,发现例如在runOnUiThread中修改了外部类的控件,而activity被销毁了,那runOnUiThread调用控件时会不会发生空指针异常?
后来进行思考得出如下结论:
匿名内部类持有外部类的对象,在内部类没有被回收之前,外部类不会被回收,因为和内部类关联。
所以就算activity被关闭了,生命周期全部走完,也不会被回收,所以不会出现空指针。
但是,如果内部类一直存活的话,会产生内存泄漏。